<html>
<body>

<h3>函数功能</h3>该函数给系统中装入一种新的键盘布局，可以同时装入几种不同的键盘布局，任一时刻仅有一个进程是活动的，装入多个键盘布局使得在多种布局间快速切换。<br>
<h3>函数原型</h3>HKLLoadKeyboardLayout（LPCTSTR pwszKLID，UINT Flags）；<br>
<h3>参数</h3>
pwszKLID：缓冲区中的存放装入的键盘布局名称，名称是由语言标识符（低位字）和设备标识符（高位字）组成的十六进制值串，例如 U.S.英语对应的语言标识符为DX0409，则基本的U.S.英语键盘布局命名为“0000409”。U.S.英语键盘布局的变种（例如Dvorak布局）命名为“00010409”，“00020409”等。<br>
Flags：指定如何装入键盘布局，该参数可以是如下的值。<br>
KLF_ACTIVATE：若指定布局尚未装入，该函数为当前线程装入并激活它。<br>
KLF_NOTELLSHELL：当装入新的键盘布局时，禁止一个ShellProe过程接收一个HSHELL_LANGUAGE代码。<br>
当应用程序依次装入多个键盘布局时，对除最后一个键盘布局外的所有键盘布局使用该值，将会延迟Shell的处理直到所有的键盘布局均己被装入。<br>
KLF_RECOROER：将指定键盘布局移动到布局表的头部，使得对于当前线程，该布局的活动的。若不提供DLF_ACTIVATE值，则该值记录键盘布局表。<br>
KLF_REPLACE_LANG：Windows NT 4.0或Windows 95以上支持，若新布局与当前布局有同样的语言标识符，那么新布局替代当前布局作为那种语言的键盘布局，若未提供该值，而键盘布局又有同样的标识符，则当前布局不被替换，函数返回NULL值。<br>
KLF_SUBSTITUTE_OK：用用户喜欢的键盘布局来替换给定布局，系统初始时设置该标志，并且建议始终设置该标志，仅当在注册HKEY_CURRENT_USER/Keyboard Layout/Substitate下定义了一个替代布局时，才发生替换。例如，在名为00000409的部分中有一个多于00010409的值，则设置该标志装入U.S.英语键盘布局会导致Dvorak US.英语键盘布局的装入。系统引导时使用该参数，建议在所有应用程序装入键盘布局时使用该值，以确保用户喜欢的键盘布局被选取。<br>
KLF_SETFORPROCESS：Windows NT 5.0该位仅法与KLF_ACTIVATE一起使用时才有效，为整个进程激活指定键盘布局，且发送WM_INPUTLANGCHANGE消息以当前进程的所有线程。典型的LoadKeyboardLayWut仅为当前线程激活一个键盘布局。<br>
KLF_UNLOADPREVIOS：WindowsNT5.0，Windows95，Windows98都不支持，仅当与KLF_ACTIVATE一起使用时才有效，仅当装入且激活指定键盘布局成功，先前的布局才能被卸载，建议使用unLoadKeyboardLayout函数。<br>
<h3>返回值</h3>若函数调用成功，返回与要求的名字匹配的键盘布局句柄。若没有匹配的布局，则返回NULL。<br>
备注：应用程序可以通过仅定义语言标识符的串来装入该语言的IME向缺省键盘布局。若应用程序想装入IME的指定键盘布局，就必须读注册信息以确定传递给LoadKeyboardLayout返回的键盘布局句柄来激活。<br>
Windows 95和Windows 98：若装载与原先键盘布局使用同种语言的布局，且KLF_REPLACELANG标志未被设置，则函数调用失败，仅有一个键盘布局可与给定语言相关联。（对于装载与同一语言相关的多IME也是可接受的）。<br>
<h3>速查</h3>Windows NT：3.1及以上版本；Windows：95及以上版本；Windows CE：不支持；头文件：winuser.h；库文件：user32.lib；Unicode：在Windows NT上实现为Unicode和ANSI两种版本。<br>

</body>
</html>

